const formatTime = date => {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  const hour = date.getHours()
  const minute = date.getMinutes()
  const second = date.getSeconds()

  return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}`
}

const formatNumber = n => {
  n = n.toString()
  return n[1] ? n : `0${n}`
}

const requestApi = (url, param) =>
  wx.cloud.callFunction({
    name: 'main',
    data: {
      $url: url,
      param: param
    }
  })

const wxrequest = (url, method, data, header) => new Promise((resolve, reject) => {
  wx.request({
    url: url,
    method: method,
    data: data,
    header: header,
    success: res => {
      resolve(res.data)
    },
    fail: err => {
      reject(err)
    }
  })
})

const wxdownload = (url) => new Promise((resolve, reject) => {
  wx.downloadFile({
    url: url,
    success: res => {
      resolve(res)
    },
    fail: err => {
      reject(err)
    }
  })
})

module.exports = {
  formatTime,
  requestApi,
  wxrequest,
  wxdownload
}